﻿package plugin.taskdialog
{
    import com.core.*;
    import consts.*;
    import pluginfw.nio.*;
    import view.*;

    public class TaskDialogControl extends Control
    {
        private var cfgtaskguide:Object = null;

        public function TaskDialogControl(param1:Object)
        {
            super(param1);
            return;
        }// end function

        public function open() : void
        {
            return;
        }// end function

        public function close() : void
        {
            return;
        }// end function

        override public function update(param1:Obproxy, param2:ProxyChange) : void
        {
            var _loc_3:Object = null;
            var _loc_4:Object = null;
            var _loc_5:int = 0;
            var _loc_6:Array = null;
            var _loc_7:Array = null;
            var _loc_8:int = 0;
            var _loc_9:int = 0;
            var _loc_10:Object = null;
            var _loc_11:Object = null;
            var _loc_12:String = null;
            var _loc_13:Object = null;
            var _loc_14:Object = null;
            var _loc_15:Object = null;
            var _loc_16:Object = null;
            var _loc_17:Object = null;
            var _loc_18:Object = null;
            var _loc_19:Array = null;
            if (param1.getName() == "taskdialog")
            {
                if (param2.property == "show")
                {
                    this.target.show(param2.newvalue);
                }
                else if (param2.property == "accept")
                {
                    _loc_3 = UserData.getData(UserDataType.Task);
                    this.target.changeState(param2.newvalue[0], param2.newvalue[1], LongUtils.asLong(param2.newvalue[4]));
                }
                else if (param2.property == "submit")
                {
                    _loc_4 = UserData.getUserData();
                    _loc_3 = UserData.getData(UserDataType.Task);
                    _loc_5 = param2.newvalue[0];
                    _loc_6 = param2.newvalue[1];
                    _loc_3["tid_" + _loc_5].state = 4;
                    _loc_7 = [];
                    _loc_8 = 0;
                    _loc_9 = 0;
                    for each (_loc_10 in _loc_6)
                    {
                        
                        _loc_3["tid_" + _loc_10.taskid] = _loc_10;
                        _loc_11 = ConfigDictionary.data.task;
                        if (_loc_11[_loc_10.taskid].type == 1 && _loc_10.state == 2 || _loc_11[_loc_10.taskid].type == 1 && _loc_10.state == 3)
                        {
                            _loc_9 = _loc_10.state;
                            _loc_8 = _loc_10.taskid;
                        }
                        for (_loc_12 in _loc_10)
                        {
                            
                            if (_loc_12.indexOf("goal_") > -1)
                            {
                                _loc_7.push(_loc_10[_loc_12]);
                                _loc_3[_loc_12] = _loc_10[_loc_12];
                            }
                        }
                    }
                    _loc_3.goals = _loc_7;
                    this.target.completeTask(_loc_3);
                    if (param2.newvalue[4])
                    {
                        _loc_13 = param2.newvalue[4];
                        for (_loc_14 in _loc_13)
                        {
                            
                            _loc_3[_loc_14] = _loc_13[_loc_14];
                        }
                    }
                    if (_loc_6.length > 0)
                    {
                        ModelProxy.change("mainui", "taskmc", 1);
                        ModelProxy.change("zone", "updatetask", null);
                        this.target.checkNextTask(_loc_3, _loc_4.level > param2.newvalue[2] ? (_loc_4.level) : (param2.newvalue[2]));
                    }
                    else
                    {
                        ModelProxy.change("plugin", "close", "taskdialog");
                    }
                    if (_loc_5 == 95)
                    {
                        _loc_15 = UserData.getOnlineData("guide");
                        if (this.cfgtaskguide == null)
                        {
                            this.cfgtaskguide = ConfigDictionary.data.taskguide;
                        }
                        _loc_16 = new Object();
                        if (this.cfgtaskguide[4] && this.cfgtaskguide[4][_loc_5])
                        {
                            _loc_16 = this.cfgtaskguide[4][_loc_5];
                            if (GuideView.getInstance().checkIsDo(_loc_16.id))
                            {
                                GuideView.getInstance().addGuide(_loc_16.id);
                                _loc_17 = ConfigDictionary.data.sysnpc[int(_loc_16.eventparam)];
                                ModelProxy.change("data", "taskfindpath", _loc_17.npcid);
                                ModelProxy.change("zone", "stopGuaji", null);
                                ModelProxy.change("zone", "autoMove", {x:_loc_17.x, y:_loc_17.y, tostageid:_loc_17.stageid, onhorse:true});
                            }
                        }
                    }
                    ModelProxy.change("tasktrack", "init", _loc_3);
                }
                else if (param2.property == "flushlevel")
                {
                    _loc_4 = UserData.getUserData();
                    _loc_3 = UserData.getData(UserDataType.Task);
                    if (param2.newvalue[2] && param2.newvalue[2].source)
                    {
                        _loc_19 = param2.newvalue[2].source;
                        for each (_loc_5 in _loc_19)
                        {
                            
                            _loc_3["tid_" + _loc_5] = null;
                        }
                    }
                    _loc_18 = param2.newvalue[1];
                    _loc_3["tid_" + _loc_18.taskid] = _loc_18;
                    if (_loc_18)
                    {
                        this.target.checkNextTask(_loc_3, _loc_4.level, true);
                    }
                    else
                    {
                        ModelProxy.change("plugin", "close", "taskdialog");
                    }
                    ModelProxy.change("tasktrack", "init", _loc_3);
                }
                else if (param2.property == "buycount")
                {
                    this.target.updateCount();
                }
                else if (param2.property == "getFreeNum")
                {
                    this.target.getFreeNum(param2.newvalue);
                }
                else if (param2.property == "autotask")
                {
                    this.target.autoTask();
                }
            }
            return;
        }// end function

    }
}
